﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.OleDb;
using System.Data;
using RCA1._0;

namespace Royal_1._0_DAL_WS
{
    public class NganhNgheKinhDoanhDAO: DataProvider
    {
        public DataTable LayBang()
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "select * from NGANHNGHEKINHDOANH where TinhTrangNganhNgheKinhDoanh = 1 ";
            OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn);
            DataTable dt = new DataTable();
            da.Fill(dt);
            cn.Close();
            return dt;
        }

        #region "Lấy đối tượng"
        private NganhNgheKinhDoanhDTO LayDoiTuong(String sql)
        {
            OleDbConnection cn = this.Connect();

            OleDbCommand cmd = new OleDbCommand(sql, cn);
            OleDbDataReader dr = cmd.ExecuteReader();

            NganhNgheKinhDoanhDTO tempDTO = null;
            if (dr.Read())
            {
                tempDTO = new NganhNgheKinhDoanhDTO();
                tempDTO.MaCongTy = Convert.ToInt32(dr["MaCongTy"]);
                tempDTO.MaNganhNgheKinhDoanh = dr["MaNganhNgheKinhDoanh"].ToString();
                tempDTO.MaLoaiNganhNghe = Convert.ToInt32(dr["MaLoaiNganhNghe"].ToString());
                tempDTO.TenNganhNgheKinhDoanh = dr["TenNganhNgheKinhDoanh"].ToString();
                tempDTO.TinhTrangNganhNgheKinhDoanh = Convert.ToInt32(dr["TinhTrangNganhNgheKinhDoanh"]);

            }
            cn.Close();
            return tempDTO;
        }
        #endregion


        #region "Lấy danh sách"
        private List<NganhNgheKinhDoanhDTO> LayDSach(String sql)
        {
            OleDbConnection cn = this.Connect();
            OleDbCommand cmd = new OleDbCommand(sql, cn);
            OleDbDataReader dr = cmd.ExecuteReader();
            NganhNgheKinhDoanhDTO tempDTO;
            List<NganhNgheKinhDoanhDTO> dsNganhNgheKinhDoanh = new List<NganhNgheKinhDoanhDTO>();
            while (dr.Read())
            {
                tempDTO = new NganhNgheKinhDoanhDTO();
                tempDTO.IDNganhNgheKinhDoanh = Convert.ToInt32(dr["IDNganhNgheKinhDoanh"].ToString());
                tempDTO.MaCongTy = Convert.ToInt32(dr["MaCongTy"]);
                tempDTO.MaNganhNgheKinhDoanh = dr["MaNganhNgheKinhDoanh"].ToString();
                tempDTO.TenNganhNgheKinhDoanh = dr["TenNganhNgheKinhDoanh"].ToString();
                tempDTO.MaLoaiNganhNghe = Convert.ToInt32(dr["MaLoaiNganhNghe"].ToString());
                tempDTO.TinhTrangNganhNgheKinhDoanh = Convert.ToInt32(dr["TinhTrangNganhNgheKinhDoanh"]);
                dsNganhNgheKinhDoanh.Add(tempDTO);
            }
            return dsNganhNgheKinhDoanh;
        }

        public List<NganhNgheKinhDoanhDTO> LayDanhSach()
        {
            String sql = "Select * From NGANHNGHEKINHDOANH Where TinhTrangNganhNgheKinhDoanh = 1";
            return LayDSach(sql);
        }

        public List<NganhNgheKinhDoanhDTO> LayDanhSachTheoMaCongTy(int IDCongTy)
        {
            String sql = "Select * From NGANHNGHEKINHDOANH Where TinhTrangNganhNgheKinhDoanh=1 and MaLoaiNganhNghe=2 and MaCongTy = " + IDCongTy;
            return LayDSach(sql);
        }
        #endregion


        #region "Tìm kiếm"
        public NganhNgheKinhDoanhDTO TimTheoMa(int MaChiNhanh)
        {

            string strSQL = "select * from NGANHNGHEKINHDOANH Where IDChiNhanh=" + MaChiNhanh.ToString();
            return LayDoiTuong(strSQL);
        }

        public NganhNgheKinhDoanhDTO TimKiemNganhNgheKinhDoanhChinhTheoMaCongTy(int maCongTy)
        {
            string strSQL = "Select * from NGANHNGHEKINHDOANH Where TinhTrangNganhNgheKinhDoanh =1 and MaLoaiNganhNghe=1 and MaCongTy=" + maCongTy;
            return LayDoiTuong(strSQL);
        }
        #endregion


        #region "Thêm"
        public void Them(NganhNgheKinhDoanhDTO tempDTO)
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "insert into NGANHNGHEKINHDOANH(MaNganhNgheKinhDoanh, MaCongTy, TenNganhNgheKinhDoanh, TinhTrangNganhNgheKinhDoanh,MaLoaiNganhNghe) values (@IDNganhNgheKinhDoanh, @MaCongTy, @TenNganhNgheKinhDoanh, @TinhTrangNganhNgheKinhDoanh,@MaLoaiNganhNghe)";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);

            cmd.Parameters.Add("@MaNganhNgheKinhDoanh", OleDbType.Integer).Value = tempDTO.MaNganhNgheKinhDoanh;
            
            cmd.Parameters.Add("@MaCongTy", OleDbType.Integer).Value = tempDTO.MaCongTy;
            cmd.Parameters.Add("@TenNganhNgheKinhDoanh", OleDbType.LongVarWChar).Value = tempDTO.TenNganhNgheKinhDoanh;
            cmd.Parameters.Add("@TinhTrangNganhNgheKinhDoanh", OleDbType.LongVarWChar).Value = tempDTO.TinhTrangNganhNgheKinhDoanh = 1;
            cmd.Parameters.Add("@MaLoaiNganhNghe", OleDbType.Integer).Value = tempDTO.MaLoaiNganhNghe;

            cmd.ExecuteNonQuery();
            cn.Close();
        }
        #endregion


        #region "Xóa"

        public void XoaTheoMaCongTy(int MaCongTy)
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "update NGANHNGHEKINHDOANH set TinhTrangNganhNgheKinhDoanh = 2 where MaCongTy =" + MaCongTy;
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);

            cmd.ExecuteNonQuery();
            cn.Close();
        }
        public void Xoa(int MaNganhNgheKinhDoanh)
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "update NGANHNGHEKINHDOANH set TinhTrangNganhNgheKinhDoanh = 2 where IDNganhNgheKinhDoanh = " + MaNganhNgheKinhDoanh.ToString();
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);

            cmd.ExecuteNonQuery();
            cn.Close();
        }
        
        //public void Xoa(int IDNganhNgheKinhDoanh)
        //{
        //    OleDbConnection cn = this.Connect();
        //    string strSQL = "delete from NGANHNGHEKINHDOANH Where IDNganhNgheKinhDoanh = " + IDNganhNgheKinhDoanh.ToString();
        //    OleDbCommand cmd = new OleDbCommand(strSQL, cn);
        //    cmd.ExecuteNonQuery();
        //    cn.Close();
        //}

        #endregion


        #region "Sửa"
        public void Sua(NganhNgheKinhDoanhDTO tempDTO)
        {
            OleDbConnection cn = this.Connect();
            string strSQL = "update NGANHNGHEKINHDOANH set TenNganhNgheKinhDoanh = @TenNganhNgheKinhDoanh, MaCongTy = @MaCongTy, TinhTrangNganhNgheKinhDoanh = @TinhTrangNganhNgheKinhDoanh where IDNganhNgheKinhDoanh = @IDNganhNgheKinhDoanh";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@MaNganhNgheKinhDoanh", OleDbType.Integer).Value = tempDTO.MaNganhNgheKinhDoanh;

            cmd.Parameters.Add("@MaCongTy", OleDbType.Integer).Value = tempDTO.MaCongTy;
            cmd.Parameters.Add("@TenNganhNgheKinhDoanh", OleDbType.LongVarWChar).Value = tempDTO.TenNganhNgheKinhDoanh;
            cmd.Parameters.Add("@TinhTrangNganhNgheKinhDoanh", OleDbType.LongVarWChar).Value = tempDTO.TinhTrangNganhNgheKinhDoanh = 1;
            cmd.Parameters.Add("@MaLoaiNganhNghe", OleDbType.Integer).Value = tempDTO.MaLoaiNganhNghe;
            cmd.ExecuteNonQuery();
            cn.Close();
        }

        #endregion




    }
}